package com.lakeworks.domain.vo;

import com.lakeworks.common.domain.base.BaseDomain;
import com.lakeworks.common.domain.system.OprProductImg;
import com.lakeworks.domain.OprAttachment;
import com.lakeworks.domain.OprRewash;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.util.List;


/**
 * 作业产品对象 opr_product
 *
 * @author lake
 * @date 2023-02-08
 */
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProductVo extends BaseDomain {
    private static final long serialVersionUID = 1L;
    /**
     * 附件产品列表
     */
    List<OprAttachment> oprAttachments;
    /**
     * 商户ID
     */
    @NotNull(message = "商户ID不能为空")
    private Long channelId;
    /**
     * 入厂单ID
     */
    @NotNull(message = "入厂单ID不能为空")
    private Long pickupId;
    /**
     * 系统产品ID
     */
    @NotNull(message = "系统产品ID不能为空")
    private Long productId;
    /**
     * 配对产品ID
     */
    private Long companionId;
    /**
     * 商品ID
     */
    @NotNull(message = "商品ID不能为空")
    private Long merchandiseId;
    /**
     * 出厂单ID
     */
    private Long shipmentId;
    /**
     * 水洗码
     */
    private String barcode;
    /**
     * 水洗码
     */
    private String washMode;
    /**
     * 状态:
     */
    private String status;
    /**
     * 备注
     */
    private String comment;
    /**
     * 商家备注
     */
    private String merchantComment;
    /**
     * 用户备注
     */
    private String userComment;
    /**
     * 入场单商品数量
     */
    private Integer quantity;
    /**
     * 编码
     */
    private String code;

    /**
     * 名称
     */
    private String name;

    /**
     * 入厂单号
     */
    private String pickNum;

    /**
     * 图片列表
     */
    private List<OprProductImg> imgList;

    /**
     * 格架号
     */
    private String frameNo;

    /**
     * 配对水洗码
     */
    private String pairBarcode;

    /**
     * 品牌材质集合
     */
    private List<Integer> brandList;

    /**
     * 反洗记录列表
     */
    private List<OprRewash> rewashList;


    private String orderNo;

}
